tg-me.com/golang_books/994
Last Update:
🌀 Middleware и RoundTripper в Go: гибкая обработка HTTP-запросов
В Go нет встроенного понятия "middleware", как в других фреймворках — но вы можете легко реализовать его сами, особенно в контексте http.RoundTripper
.
🔧 RoundTripper — это интерфейс, который обрабатывает HTTP-запросы на уровне клиента (`http.Client`). Это даёт возможность внедрять логику *до* и *после* отправки запроса.
🧱 Пример: логгер запросов
type LoggingRoundTripper struct {
rt http.RoundTripper
}
func (l *LoggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
log.Printf("📤 Запрос: %s %s", req.Method, req.URL)
resp, err := l.rt.RoundTrip(req)
if err == nil {
log.Printf("📥 Ответ: %d", resp.StatusCode)
}
return resp, err
}
📦 Использование:
client := &http.Client{
Transport: &LoggingRoundTripper{rt: http.DefaultTransport},
}
💡 Таким образом, вы можете создавать middleware прямо внутри
http.Client
, например:• логирование
• кэширование
• модификация заголовков
• retry-логика
• трейсинг
🔗 Подробнее: dev.to/calvinmclean/middleware-and-roundtrippers-in-go-30pa
#golang #httpclient #middleware #webdev #devtools
BY Golang Books

Share with your friend now:
tg-me.com/golang_books/994